home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok80.lha / CheckCaps / CheckCaps.mod < prev    next >
Text File  |  1993-08-15  |  2KB  |  58 lines

  1. (*---------------------------------------------------------------------------
  2.  :Program.     CheckCaps.mod
  3.  :Contents.    Returns WARN, if CapsLock is on, useful for scripts
  4.  :Author.      Christian Stiens
  5.  :Address.     Snail-Mail:           E-Mail:
  6.  :Address.     Heustiege 2           UUCP: Christian_Stiens@ouzonix.bo.open.de
  7.  :Address.     W-4710 Lüdinghausen   FIDO: 2:241/5807
  8.  :Copyright.   public domain
  9.  :Language.    Oberon-2
  10.  :Translator.  Amiga Oberon V2.42d (innofficial beta version)
  11.  :History.     V1.0, 06-Oct-92
  12.  :Imports.     DeviceSupport
  13. ---------------------------------------------------------------------------*)
  14.  
  15. MODULE CheckCaps;
  16.  
  17.   IMPORT
  18.     d: Dos, ds: DeviceSupport, e: Exec, k: Keyboard, ol: OberonLib, y: SYSTEM;
  19.  
  20.   CONST
  21.     version = "\o$VER: checkcaps 1.0 (6.10.92)\n\r";
  22.  
  23.   VAR
  24.     req     : e.IOStdReqPtr;
  25.     matrix  : ARRAY 13 OF SHORTSET;
  26.     out     : d.FileHandlePtr;
  27.     dummy   : LONGINT;
  28.  
  29. BEGIN
  30.   dummy := y.ADR(version);
  31.  
  32.   IF ol.wbStarted THEN out := d.Open("CON:0/50/640/100/CheckCaps",d.newFile)
  33.                   ELSE out := d.Output() END;
  34.   IF out = NIL THEN HALT(20) END;
  35.  
  36.   req := ds.OpenDev(k.keyboardName,0,LONGSET{},0,NIL);
  37.   IF req = NIL THEN HALT(20) END;
  38.  
  39.   req.data := y.ADR(matrix);
  40.   req.length := 13;
  41.  
  42.   ds.DoCommand(req,k.readMatrix);
  43.  
  44.   IF 2 IN matrix[12] THEN
  45.     dummy := d.Write(out,"Caps Lock on\n",13);
  46.     HALT(d.warn);
  47.   ELSE
  48.     dummy := d.Write(out,"Caps Lock off\n",14);
  49.   END;
  50.  
  51. CLOSE
  52.  
  53.   IF req#NIL THEN ds.CloseDev(req) END;
  54.   IF ol.wbStarted & (out#NIL) THEN d.Delay(50); d.OldClose(out) END;
  55.  
  56. END CheckCaps.
  57.  
  58.